There are many kinds of computer systems in use now. In terms of the purpose of a computer system, there are computer systems ranging from a general purpose computer used for various kinds of information processing in the business field as well as in the scientific field to a special purpose computer system specialized for a particular type of information processing, for example, performing numerically intensive calculations.
A general purpose computer is designed to meet various kinds of requirements of users at one time and is not specialized for a particular type of calculation. IBM 3090 processor (IBM is a registered trademark of International Business Machines Corporation, USA) is a general purpose computer.
A so-called super computer is a special purpose computer exclusively specialized for numerically intensive computing, which is needed for some scientific and business applications, for example, structural analysis, crash analysis, fluid dynamics, magnetic field analysis, LSI design, weather forecast and financial design. A super computer employs special computer design. For example, they employ vectorization, pipelining and parallel processing, in order to obtain high peak floating number execution performance around several tens of GFLOPS (Giga Floating Point Operations Per Second). The design of a general purpose computer is not aimed at high peak floating number execution performance but at high throughput, short turnaround time, availability, and etc. to meet various kinds of user requirements at one time.
There are also various kinds of operating systems in use now. Without software, computers are mere hardware which cannot do any work. It is software that gives users of computers what the users want from the computers. The operating system is a software which effectively controls the execution of other software, so-called application or user programs which provide a user with a particular work the user needs. An operating system provides services, such as, resource allocation, scheduling, input/outputs control, and data management in a computer.
Multiple Virtual Storage, (hereinafter referred to as MVS) is an operating system for a general purpose computer of IBM. UNIX (a registered trademark of UNIX International) is another operating system developed by Bell Laboratory and used in many computers including super computers.
Since the number of general purpose computers in use and the number of the users and operators accustomed to general purpose computers are much larger than those of super computers, it is desirable to make available a super computing environment to users of a general purpose computer without any training about a super computer and its operating system.
One solution is to couple a general purpose computer and a super computer so as to make up a distributed processing system and to use the general purpose computer as a front-end processor and the super computer as a back-end processor. If all input and output operations are handled by the front-end processor and numerically intensive computing is handled by the back-end processor in the coupled system, only the front-end processor system is visible to the users and the back-end processor will be almost transparent to the users.
However, there are many problems to be solved to couple a general purpose computer and a super computer, each running under control of a different operating system, for example, MVS or UNIX, so as to make up a distributed processing system. For one thing, these different operating systems have different file systems. MVS has a horizontal file system whereas UNIX has tree-like file system. Also, the physical formats of UNIX file and MVS files are different. Files in this system must be accessible to both operating systems running on the front-end and the back-end computer.
This invention includes new approaches to two areas of distributed data processing, remote program initiation and file service. Currently there are several types of remote program initiation methods. One type is remote job entry. Current remote job entry methods such as IBM's remote job entry (RJE) system allow users to send job control statements from one system to another. Some types of data (system input stream, SYSIN) can be sent along with the job control statements. Another method in the prior art is by remote user logon to a system, which then allows the user to send the commands necessary to initiate programs on the remote system.
This invention is a substantial improvement on these methods. The current methods require the user to understand the job entry procedure language, or the commands, of the target remote system on which the user wishes to execute his or her programs. This invention allows the user to initiate remote work in exactly the same way as he/she initiates a job on his/her own local system. This is an enormous advantage when the remote system is controlled by a different operating system. Since every operating system uses different commands for job submission, file specification, etc., it was extremely difficult for users to use a remote system controlled by a different operating system prior to this invention.
Another method of remote program initiation which is in use in commercial computing systems is the use of remote procedure calls from programs on one system to programs on another system. With this method it is possible to make the remote system almost invisible so that the user may not have to be aware that the called program executes remotely. But this method doesn't provide a way to specify local files to be used as data for remote programs. Also it requires modification of the user's programs. The present invention allows the local file system to be accessed by the remote programs, and also permits programs that currently work on the local system to simply be recompiled and then run on the remote system. They do not have to be rewritten or modified by the user.
There are many existing file service systems. Many commercial systems are available which allow one system to act as a file depository, which stores files and sends them to another system on demand. Almost all of these systems, however, are only for homogeneous operating systems. Some file server systems do allow file serving among heterogeneous operating systems. For example, the University of Michigan's File Server system allows UNIX files to be stored on a mainframe computer running the MVS operating system. Even this system, however, only allows the heterogeneous files to be stored. They cannot be used by MVS programs.
The present invention is superior because only this method allows files to be used by programs running under very different operating systems. Furthermore, the physical format of the files do not have to be changed as part of file accessing by the remote heterogeneous system. Also, unlike other methods in the current art, the file name does not have to be translated from one name to another in order to be accessed by a different operating system.
Japanese published unexamined patent application No. 63-59639 (JA patent Appln. No. 61-204353) discloses a file system compatible with different operating systems, such as, UNIX and another operating system used in a general purpose computer. The solution described in that application is not applicable to the distributed processing environment. Furthermore, the means of achieving file compatibility in that application is inferior to the means used in this invention. The means of achieving file compatibility by the solution described in the Japanese application requires changing the format of the data files and transforming the file names.
The solution used in this invention does not require changing the data format, nor is the file name ever changed. Also, many different file formats, such as fixed block, variable blocked, spanned, sequential, direct and partitioned formats, can all be used by the method of the present invention.
An object of the present invention is to solve the problems in the field of system integration, specifically, the problems of combining two or more hardware and software systems, i.e., a front-end computer and a back-end computer, which feature different operating systems so as to make up a distributed processing system in which jobs initiated on a front-end computer are executed on a back-end computer by using resources of the back-end computer.
The possible motivations for creating such a system are many, e.g., taking advantage of special hardware available on one or more of these systems; merging multiple databases or applications that exist on more than one system; and allowing an application that currently runs on one system to access data files of another system.
The value of any such integrated system (both in terms of marketability and value to the user/purchaser) depends on the extent to which the following key goals can be achieved: maintaining the value of existing user programs by allowing them to continue to be used on the integrated system with the smallest possible modification (preferably none); allowing end users to use the full function of the integrated system without being aware of complex underlying system software; allowing operators and other support staff to control and monitor the integrated system without having to understand complex underlying system software; not requiring end users or operators to learn a new set of procedures; and minimizing the modifications to system level software needed to integrate two or more independent systems.